1. Field of the Invention
The present invention related to a bar-code reader and bar-code reading method, each of which scans a bar-code with electromagnetic radioactive rays such as a light beam and reads it by utilizing the reflection. More particularly, the present invention relates to a bar-code reader and a bar-code reading method each which is suitable for POS systems (Point of Sales systems) used in supermarkets, distribution industries, and like. The POS systems use scanners acting as bar-code readers. The present invention is directed toward improving the reading performance of a bar-code reader.
2. Description of the Related Art
FIG. 61 is a block diagram showing the configuration of a conventional bar-code reader. Referring to FIG. 61, numeral 101 is a bar-code printed on a surface of an article. The bar-code 101 which is formed of a plurality of black bars and a plurality of white bars arranged alternately represents predetermined data, based on the width of each black bar and the width of each white bar.
Numeral 102 represents an optical system that irradiates a laser beam L2 to the bar-code 101 and receives a reflected light R1, or a laser beam L2 reflected on the bar-code 101. The optical system 102 is formed of a laser emitting unit 103, a scanning mechanism 104, and a photoelectric converter 105.
The laser emitting unit 103 includes a semiconductor laser that emits a laser beam L1 (electromagnetic radioactive rays).
The scanning mechanism 104 which is formed of a polygon mirror rotatable driven with, for example, a motor, reflects the laser beam L1 from the laser emitting unit 103, irradiates the laser beam L1 as a laser beam L2 to the plurality of black bars and the plurality of white bars of the bar-code 101, and then moves and scans at a constant rate in the direction perpendicular to the black and white bars of the bar-code 101.
The scanning mechanism 104 also brings the reflected light R1 moving with scanning of the laser beam L2 as the reflected light R2 to the photoelectric converter 105, by reflecting the reflected light R1 or the laser beam L2 reflected on the bar-code 101.
The photoelectric converter 105 is also formed of a photoelectric converting element such as a photodiode and converts the reflected light (photo input signal) R2 received via the scanning mechanism 104 into an electric signal (with an analog value) according to the light amount and then outputs the converted signal.
Referring to FIG. 61, numeral 106 represents an A.backslash.D converter that digitalized an electrical signal from the photoelectric converter 105 to convert it into a binary signal including a black level signal corresponding to a black bar portion in the bar-code 101 and a white level signal corresponding to a white bar portion in the bar-code 101. The binary signal includes a white level signal with a high level and a black level signal with a low level because the light amount of a reflected light R2 from each white bar portion is usually larger than that of a reflected light R2 from each black bar portion.
Numeral 107 represents a bar-width counter that counts clock signals from a clock generator 108. The bar-width counter 107 produces as clock signal count values the time width of a black level signal portion and the time width of a white level signal portion included in a binary signal from the A.backslash.D converter 106, or a value corresponding to the width of each black bar and a value corresponding to the width of each white bar of an actual bar-code 101.
Numeral 109 represents a memory that stores a bar-width count value from the bar-width counter 107, and 110 represents a CPU. The CPU 110 extracts and demodulates predetermined data of a bar-code 101, based on a bar-width count value (a value corresponding to the width of each black bar or white bar) stored in the memory 109.
In the above-mentioned configuration, the laser beam L1 emitted from the laser emitting unit 103 is irradiated as the laser beam L2 to black bars and white bars of the bar code 101 using said scanning mechanism 104, while it is moved and scanned at a constant rate in the direction perpendicular to the black and white bars of the bar-code 101.
The laser beam L2 sent from the scanning mechanism 104 is scattered and reflected on a surface of the bar-code 101 and it then reenters as the reflected light R1 to the scanning mechanism 104. The reflected light R1 moves with its varying reflection angle following the scanning movement of the laser beam L2. However, the reflected light R1 is reflected by the polygon mirror (a component of the scanning mechanism 104) and it then falls as the reflected light R2 into the photoelectric converting element in the photoelectric converter 105 arranged at a predetermined position.
The photoelectric converter 105 converts the reflected light R2 into an electrical signal according to the amount of light. The A.backslash.D converter 106 digitalized the electrical signal to convert into a binary signal including a black level signal corresponding to each black bar portion and a white level signal corresponding to each white bar portion in the bar-code 101.
Thereafter, the bar-width counter 107 counts clock signals from the clock generator 108. The time widths of black level signal portion and a white level signal portion of a binary signal from the A.backslash.D converter 106 (a value corresponding to the widths of each black bar and white bar of an actual bar-code 101) is measured as the count value of a clock signal. The count value is temporarily stored into the memory 109. The CPU 110 subjects a bar-width count value stored in the memory 109 to a predetermined demodulation process, and then extracts and demodulates predetermined data of the bar-code 101.
As described above regarding FIG. 61, the bar-code 101, as shown in FIG. 62, which is formed of a plurality of black bars 1B and a plurality of white bars 1W arranged alternately represents predetermined data based on the widths of each black bar 1B and each white bar 1W. The black bar 1B or white bar 1W has a width corresponding to a natural integer (e.g. 1 to 4 times: referred to as a module number) of times one module set as a predetermined reference length.
In more detail, the bar-code 101 shown in FIG. 62 has a guard bar GB formed of two black bars 1B corresponding to one module and one white bar 1W corresponding to one module formed between two black bars 1B on the left end and a special center bar SCB formed of three black bars 1B each corresponding to one module and three white bars 1W each corresponding to one module arranged alternately to the black bars on the right end in FIG. 62.
The guard bar GB and the special center bar SCB define both the ends of the bar-code 1. Character portions, for example, 1CHR (character) to 6CHR representing 6 pieces of numerical data (portions showing as the time widths C1 to C6 in FIG. 62, respectively) between the guard bar GB and the special center bar SCB.
Each of the character portions 1CHR to 6CHR is formed of two white bars 1W and two black bars 1B. The number of all the modules is 7. Predetermined numerical data is expressed to each of the character portions 1CHR and 6CHR by combining the number of modules (corresponding to time width T01) included from the left end of the left black bar 1B to the left end of right black bar 1B and the number of modules (Corresponding to time width T02) included from the left end of the left black bar 1B to the left end of the right black bar 1B and the number of modules (corresponding to time width T02) included from the right end of the left black bar 1B to the right end of the right black bar.
The relationship between the combined number of modules and the predetermined numerical data is well known as shown in FIG. 63 and are previously stored and held as a table (matrix). Referring to FIG. 63, letter E represents EVEN or that the sum of modules in the black bars 1B is an even number, and O represents ODD or that the sum of modules in the black bars is an odd number. For example, according to the UPC bar-code structure, the character portion 1CHR shown in FIG. 62 represents "ODD0(00)", the character portion 2CHR represents "ODD1(01)", and the character portion 6CHR represents "ODD2(02)".
Hence, the CPU 110 determines the number modules of each of the time widths (.delta. distance length) T01 and T02 to each of the character portions 1CHR to 6CHR, based on a bar-width count value stored in the memory 109, reads out the numerical data corresponding to combination of two modules from the predetermined table previously stored, and then extracts and demodulates the data of the bar-code 101.
The reading operation of the bar-code 101 in which 6 character portions 1CHR to 6CHR are arranged between the guard bar GB and the special center bar SCB has been explained by referring to FIG. 62. However, as shown in FIG. 64, a conventional bar-code is the bar-code of type which includes the special center bar SCB on the right side of the bar-code 101 shown in FIG. 62 acting as the center bar CB formed of two black bars 1B of one module and two white bars 1W of one module, 6 character portions arranged on both sides with respect to the center bar CB, the left guard bar LGB formed of two black bars 1B of the module number 1 and two white bars 1W of the module number 1 arranged on the left end, and the right guard bar RGB formed of two black bars 1B of the module umber 1 and two white bars 1W of the module number 1 arranged on the right end.
This type of bar-code belongs to the UPC (Universal Product Code) bar-code symbolic standard version. The case where the bar-code 101 of the type shown in FIG. 64 is read will be explained below according to the present invention. The reading operation of the bar-code 101 of the type shown in FIG. 64 is basically performed with the same procedure as that shown in FIG. 62.
In the data extracting and demodulating process for the bar-code 101 shown in FIG. 64, demodulation is normally carried out but he left black unit arranged between the left guard bar LGB and the center bar CB and the right block unit arranged between the right guard bar RGB and the center bar CB of the bar-code 101. The demodulation result is subjected to the general modulo-10 checking. Then if the check result is good, it is judged that one time reading (demodulating process) of the bar-code 101 has been completed.
In this case, the scanning mechanism 104 irradiates 1500 laser beams L2 per second on the bar-code 101. The one-time demodulating process is determined to have completed if any one beam of them crosses the bar-code 101. However, in order to avoid erroneous reading of the bar-code 101, the demodulation data is not judged as valid immediately after a completion of a series of demodulation. The demodulation process is repeated on the same bar-code 101 without completing the reading operation. When data in a black unit to which the modulo-10 checking is good and coincides continuously for a predetermined number of times (coincidence count checking), the reading operation is completed. For example, the method of capturing the demodulation data of a bar-code twice and completing the reading when the previous data agrees with the current data is called "twice coincidence checking".
According to the above-mentioned bar-code checking method, as shown in FIG. 65, the demodulation data becomes valid only when the left block unit arranged between the left guard bar LGB and the center bar CB and the right block unit arranged between the right guard bar RGB and the center bar CB in the bar-code 101 can be scanned with the scanning lines A1 and A2, respectively, or there are the guard bar LGB or RGB and the center bar CB on both ends of demodulation data along the scanning line A1 and the guard bar LGB or RGB and the center bar CB on both ends of demodulations data along the scanning line A2.
Recently, some optical systems irradiate light beams to the bar-code 101 in, for example, 16 scanning directions. In the case of using such an optical system, with a large angle made by the light beam scanning direction and the bar-code 101, as shown in FIG. 65, there is the case where a single scanning line cannot thoroughly can the left block unit arranged between the left guard bar LGB and the center bar CB and the right block unit arranged between the right guard bar RGB and the center bar CB.
For example, as shown in. FIG. 66, when three scanning lines A1 to A3 split-scans three portions of the single bar-code 101, the above-mentioned bar-code reading method cannot obtain demodulation data. However, recently, even when a split scanning is performed as shown in FIG. 66, demodulation is performed with each of the scanning lines A1 to A3 as much as possible. Then data of the signal bar-code 101 is demodulated by combining the resultant plurality of (here, three) pieces of demodulated data in a considerable pattern.
However, where the guard bar or the center bar is included in the demodulated data obtained with each of the scanning lines A1 to A3, and the character of the end is overlapped with the character of the end of another adjacent demodulated data in the demodulated data obtained to each of the scanning lines A1 to A3 (character duplicate checking), the above-mentioned demodulated data becomes valid. In FIG. 66, the shaded portions show character duplicate portions.
The functional structure shown in FIG. 67, for example, has been proposed as a bar-code reader (scanner) for reading the bar-code 101, as shown in FIG. 64. In FIG. 67, numeral 90 represents scanning and extracting means; 91 represents left.backslash.right block unit demodulating means, and 92 represents synthesizing means.
The scanning and extracting means 90 scans a bar-code with light rays (electromagnetic radioactive rays) and extracts bar-width data from the reflected light (corresponding to the portion of constituted of elements 102 to 108 in FIG. 61).
The left.backslash.right unit demodulating means 91 implements a demodulating process every left block unit or right block unit arranged between the guard bar and the center bar of a bar-code, based on the bar-width data extracted by the scanning and extracting means 90, and then obtains demodulated data. The synthesizing means 92 synthesizes demodulated data demodulated every left or right block unit. The left.backslash.right block unit demodulating means 91 and the synthesizing means 92 are arranged as the function of the CPU 110 in, for example, in FIG. 61.
In the device having the functional structure shown in FIG. 67. where there are demodulated data in left block unit and the demodulated data in right block unit each demodulated by the left.backslash.right block unit demodulating means 91, one including only a guard bar and the other including a guard bar and a center bar, the demodulated data in the left block data unit has a character duplicated at the most remote end and the demodulated data in the right block data unit has a character duplicated at the most remote end. If the demodulated data passes the modulo-10 checking, the synthesizing means 92 synthesizes demodulation data (bar-width data) in the left block unit and demodulation data (bar-width data) in the right block unit.
For example, as shown in FIG. 68(a), where the characters A, B, C, and D are obtained by scanning with the beam .alpha. from the scanning and extracting means 90 and demodulating with the left.backslash.right block unit demodulating means 91, and the characters D, E, F, a, b, c, d, e, and f are obtained by scanning with the beam B from the scanning and extracting means 90 and demodulating with the left.backslash.right block unit demodulating means 91, the character "D" is overlapped or duplicated. Hence when demodulation data along two beam scanning lines .alpha. and .beta. clears the modulo-10 checking, the synthesizing means 92 can synthesize the characters A to F and a to f so the bar-code reading can be preformed.
Recently, bar-codes have been used extensively as represented by the POS systems used in distribution industries. However, bar-codes with low print quality are increasing. There is great possibility that the bar-code with low print quality may be erroneously read. The possibility that paper surface noises or characters are erroneously read as bar-code data is considerably strong.
Therefore it has been desirable that even bar-codes with low print quality can be read with high accuracy without being erroneously read. The bar-code erroneous reading may be caused by curvature of bar-code, wrinkles, and flaws on the reading glass window surface of the bar-code reader.
Paper surface noises or characters may be erroneously read and demodulated as characters of a bar-code after light beams sweep across the guard bar, center bar, and normal character. In this case, since the character duplicate checking is not approved, the demodulation result becomes invalid.
In the bar-code reader shown in FIG. 67, in the reading operation of the bar-code divided in two portions, if the guard bar and the center bar are detected on each scanning line, bar-code data is sampled as much as possible that they can be demodulated along each scanning line. When a combination of the demodulation data in the left block unit and the demodulation data in the right block unit to which an overlap (duplicate portion) can be considered in the bar-code passes the modulo-10 checking, the bar-width data is synthesized.
However, when the scanning and extracting means 90 scans the bar-code, paper surface noises or characters may be erroneously read as a bar-code or a bar-code is erroneously read due to curvature of paper surface or a fold in the paper.
For example. FIG. 68(b) shows the case where the characters A, B, C, D, and E' can be demodulated along the scanning line of the beam .alpha., and the case where characters D, E, F, a, b, c, d, e, and f can be demodulated along the scanning line of the beam .beta.. The character "E'" obtained by the beam .alpha. is dummy demodulation data obtained by erroneously demodulating the original character "E" which cannot be completely scanned due to paper surface noises or characters. In this case, the character "D" exists in common in the demodulation data in the left unit and the demodulation data in the right unit. However, the character "E" differs from the character "E'". Since the character at the most remote end of the demodulation data in the right block unit does not agree with the character at the most remote end of the demodulation data in the left block unit, the bar-width data cannot be synthesized. For that reason, the same process must be made again by discarding data of the characters A to E' and D to f already obtained by demodulation. Hence, the bar-code reader may have a poor efficiency, consumes a long processing time, continues to erroneously demodulate and read characters.
In order to avoid an erroneous reading, as described above, where the same data is demodulated continuously a predetermined fixed number of times, a process of validating the demodulation result is performed. However, in the coincidence count checking, the reference number of times being always constant may cause an erroneous reading in some bar-code reading states. It is considered to set the reference number of times to a large value from the beginning. In such a case, even when one-time scanning and demodulating process allows error-free reading, the demodulation result in not validated till the same data is demodulated by the reference number of times. Hence there is a disadvantage in that the bar-code reading process takes much time.